program trinome
  implicit none
  real, parameter :: epsilon = 1e-6
  real a, b, c
  real delta, r_delta, x1, x2

             ! Valorisation des coefficients.
  a = 3.; b = 7.; c = -11.

                 ! a doit être non nul.
  if ( a > -epsilon .and. a < epsilon ) &
    stop "a doit être non nul."

                 ! calcul du déterminant.
  delta = b*b - 4*a*c
              ! cas du déterminant négatif.
  if( delta < -epsilon ) stop "Pas de racine réelle."

                 ! cas du déterminant nul.
  if ( delta > -epsilon .and. delta < epsilon ) then
    x1 = -b/(2*a); x2 = x1
  else          ! cas du déterminant positif.
    r_delta = sqrt( delta )
    x1 = (-b - r_delta)/(2*a); x2 = (-b + r_delta)/(2*a)
  end if

                  ! Impression des racines.
  print *,"x1 = ", x1, ", x2 = ", x2
end program trinome

